package com.note.feng.leetcode.algorithms.easy;

public class TwoHundredSixtyThree {

    /**
     * 263 丑数
     * 丑数 就是只包含质因数 2、3 和 5 的正整数。
     *
     * 给你一个整数 n ，请你判断 n 是否为 丑数 。如果是，返回 true ；否则，返回 false 。
     *
     * 示例 1：
     *
     * 输入：n = 6
     * 输出：true
     * 解释：6 = 2 × 3
     * 示例 2：
     *
     * 输入：n = 1
     * 输出：true
     * 解释：1 没有质因数，因此它的全部质因数是 {2, 3, 5} 的空集。习惯上将其视作第一个丑数。
     * 示例 3：
     *
     * 输入：n = 14
     * 输出：false
     * 解释：14 不是丑数，因为它包含了另外一个质因数 7 。
     *
     * 提示：
     *
     * -231 <= n <= 231 - 1
     *
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode.cn/problems/ugly-number
     */
    /**
     *解法：若n小于等于0，则不是丑数，直接返回false
     * 若大于0，分别取余2,3,5，若余数始终是0，是丑数，否则，判断n是否等于1,1是丑数
     * @param n
     * @return
     */
    public boolean isUgly(int n) {
        if(n <= 0){
            return false;
        }
        while (true){
            if(n % 2 == 0){
                n /= 2;
            }else if(n % 3 == 0){
                n /= 3;
            }else if(n % 5 == 0){
                n /= 5;
            }else {
                break;
            }
        }
        return n == 1;
    }
}
